home *** CD-ROM | disk | FTP | other *** search
- // Copyright (C) 1997-2002 Alias|Wavefront,
- // a division of Silicon Graphics Limited.
- //
- // The information in this file is provided for the exclusive use of the
- // licensees of Alias|Wavefront. Such users have the right to use, modify,
- // and incorporate this code into other products for purposes authorized
- // by the Alias|Wavefront license agreement, without fee.
- //
- // ALIAS|WAVEFRONT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- // EVENT SHALL ALIAS|WAVEFRONT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- // PERFORMANCE OF THIS SOFTWARE.
- //
-
- //
- // Finds a menuItem in a menu from its label. If $offset is not 0, then
- // the item $offset positions away from the item found is
- // returned. Negative numbers mean towards the top of the menu.
- //
- // If the item is not found or offset is too large, then "" is returned.
- //
- ///////////////////////////////////////////////////////////////////////////////
- global proc string findMenuItemFromLabel(
- string $menu, // I: menu name
- string $label, // I: label name
- int $offset) // I: offset to label
- {
- string $allItems[] = `menu -q -ia $menu`;
- int $i;
- string $completeItem;
- for ($i = size($allItems) ; $i-- ; )
- {
- $completeItem = ($menu+"|"+$allItems[$i]);
- if ((! `menuItem -q -d $completeItem`) &&
- ($label == `menuItem -q -l $completeItem`))
- {
- $i += $offset;
- if (($i >= 0) && ($i < size($allItems)))
- return $allItems[$i];
- return "";
- }
- }
- return "";
- }
-
-